In today's information age, communication devices, such as computers and computer peripherals, are often internetworked over a communication network. A common networking model routes packets of information within the communication network using a networking protocol such as the Internet Protocol (IP) or other network layer protocol. Some networking protocols, such as IP, are considered to be “connectionless” networking protocols. In a connectionless networking protocol, each packet of information includes a network layer address, and each router forwards the packet of information based upon the network layer address according to predetermined signaling and routing protocols, such as the Open Shortest Path First (OSPF) protocol, the Routing Information Protocol (RIP), Hello, Border Gateway Protocol (BGP), RSVP, or other routing protocol.
Thus, each router makes an independent forwarding decision for the packet based upon the network layer address. Essentially, each router partitions the entire set of network layer addresses into a number of Forwarding Equivalence Classes (FECs), and each FEC is mapped to a particular outgoing path (or set of paths, in the case of multi-path routing) based upon the routing protocol. The router determines an FEC for each packet of information based upon the network layer address of the packet, and forwards the packet of information to the corresponding outgoing path (or set of paths).
Network layer routing requires each router to process each packet of information at the network layer. This is an expensive and time-consuming operation that limits the performance of some routers and even prevents certain devices that do not support the networking protocol from performing routing and other functions on the packets.
Label switching can be used to eliminate the network layer processing by certain devices in the communication network. Label switching enables a packet to be transported across a network domain (referred to hereinafter as an “autonomous system” or “AS”) using labels rather than the network layer address. Specifically, a label switched path (LSP) is established from an ingress point border device to an egress point border device in the AS. The LSP traverses a number of intermediate label switching devices. When the packet enters the ingress point border device, the ingress point border device uses the network address to assign the packet to a particular FEC, and inserts the corresponding label into the packet, specifically within a label header. Each intermediate label switching device along the LSP forwards the packet based upon the label. The egress point border device removes the label from the packet and forwards the packet based upon the network address. Thus, only the border devices process the packet at the network layer, while the intermediate devices process the packet based upon the label only.
In order to establish and remove LSPs, the various label switching devices exchange label switching information using a signaling protocol. Label switching information can be exchanged using a dedicated label distribution protocol, or can be exchanged (“piggy-backed”) in other signaling and routing protocols, such as OSPF, IS-IS, and RIP.
Each label switching device maintains mapping information for mapping each FEC to a corresponding label. The label mapping information is typically maintained in the various forwarding/routing tables maintained by the label switching device. It is common for the label switching device to maintain a forwarding table for each incoming interface and a forwarding table for each outgoing interface. The label mapping information maintained by the label switching device in the incoming forwarding tables enables the label switching device to quickly forward received packets that include label switching information. The label mapping information maintained by the label switching device in the outgoing forwarding tables enables the label switching device to insert label switching information into packets. For convenience, a forwarding table that includes label mapping information may be referred to as a label information base (LIB).
An architecture for multi-protocol label switching (MPLS) is discussed in E. Rosen et. al., Multiprotocol Label Switching Architecture, Internet Engineering Task Force (IETF) Request For Comments (RFC) 3031, January 2001, which is hereby incorporated herein by reference in its entirety. One signaling protocol for exchanging label switching information for MPLS is commonly known as the Label Distribution Protocol (LDP). LDP is described in L. Andersson et. al., LDP Specification, Internet Engineering Task Force (IETF) Request For Comments (RFC) 3036, January 2001, which is hereby incorporated herein by reference in its entirety. An encoding technique for producing and processing labeled packets for MPLS is described in E. Rosen et. al., MPLS Label Stack Encoding, Internet Engineering Task Force (IETF) Request For Comments (RFC) 3032, January 2001, which is hereby incorporated herein by reference in its entirety.
A typical label switching device includes both label edge and label switching functionality. The label edge functionality enables the label switching device to function at the edge of a MPLS network, where labels are added to and removed from packets. The label switching functionality enables the label switching device to function within the MPLS network, where packets are forwarded based upon labels. Each label switching device is configured to perform either the label edge functionality or the label switching functionality based upon the location of the label switching device in the MPLS network.